# 迭代器
list = [0, 1, 2, 3, 4, 5, 6]
ite = iter(list) # 得到迭代器

while True:
    try:
        print(next(ite)) # 获取迭代器下一个值
    except StopIteration: # 迭代器已读取不到下一个值则抛出异常
        break # 终止循环

print("================")

# 生成器，产生可迭代对象，不同于比列表生成式（也叫推导式），生成器可以延迟计算，适用于处理大量数据的场景
def my_generator():
    yield 1
    yield 2
    yield 3
    yield 4
    yield 5

for x in my_generator(): # 生成器可以像列表一样遍历
    print(x)

print(__name__)